﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SW_SoftBully.Models;
using System.Json;
using log4net;
using SW_SoftBully.Models.ModuloServicios.Incidencia;
using SW_SoftBully.Controllers.ModuloServicios;
using SW_SoftBully.Models.ModuloAdministracion.Mantenible;
using SW_SoftBully.Models.ModuloAdministracion.TipoIncidencia;
using SW_SoftBully.Models.ModuloAdministracion.Edificio;

namespace SW_SoftBully.Controllers.ModuloServicio
{
    public class IncidenciaController : Controller
    {
        //
        // GET: /Incidencia/
        private SoftBullyDB db = new SoftBullyDB();
        IncidenciaFacade incidenciaFacade = new IncidenciaFacade();
        TipoIncidenciaFacade tipoincidenciaFacade = new TipoIncidenciaFacade();
        EdificioFacade edificioFacade = new EdificioFacade();
        MantenibleFacade mantenibleFacade = new MantenibleFacade();

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Incidencia()
        {
            return View();
        }

        public ActionResult RegistrarIncidencia()
        {
            return View();
        }

        public ActionResult BuscarIncidencia()
        {
            return View();
        }

        [HttpPost]
        public JsonResult registrarIncidencia(IncidenciaBean incidencia)
        {

            if (incidenciaFacade.Existeincidencia(incidencia))
            {
                return Json(new { me = "El incidencia ya existe" });
            }

            string conexion = incidenciaFacade.Registrarincidencia(incidencia);

            if (conexion == "Bien")
            {
                return Json(new { me = "Se ingreso correctamente" });

            }
            else
            {
                return Json(new { me = conexion });

            }
        }

        [HttpPost]
        public JsonResult buscarIncidencia(IncidenciaBean incidencia)
        {

            List<IncidenciaBean> listaIncidencia = incidenciaFacade.Listarincidencia(incidencia);

            return Json(new { listaIncidencia });
        }

        [HttpPost]
        public JsonResult eliminarIncidencia(IncidenciaBean incidencia)
        {
            string conexion = incidenciaFacade.Eliminarincidencia(incidencia);

            if (conexion == "Bien")
            {
                //System.Diagnostics.Debug.WriteLine("--------------------------------------_________Prueb3> " + incidencia.conexion);
                return Json(new { me = "Se eliminó correctamente" });
            }
            else
            {
                //System.Diagnostics.Debug.WriteLine("--------------------------------------_________Prueba4> " + incidencia.conexion);
                return Json(new { me = conexion });
            }
        }

        //?????????????????????????????????????????????????????modificar????????????????????????????????????????????????????????????????????????????????????????????????????????
        [HttpPost]
        public JsonResult modificarIncidencia(IncidenciaBean incidencia)
        {
            string conexion = incidenciaFacade.Modificarincidencia(incidencia);

            if (conexion == "Bien")
            {
                //System.Diagnostics.Debug.WriteLine("--------------------------------------_________Prueba5> " + incidencia.conexion);
                return Json(new { me = "Se modificó correctamente " + incidencia.Nombre });
            }
            else
            {
                //System.Diagnostics.Debug.WriteLine("--------------------------------------_________Prueba6> " + incidencia.conexion);
                return Json(new { me = conexion });
            }
        }

        [HttpPost]
        public JsonResult cargarTipoIncidencias(TipoIncidenciaBean tipoincidencia)
        {
            //System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + departamento.Nombre);

            List<TipoIncidenciaBean> listaTipoIncidencia = tipoincidenciaFacade.ListarTipoIncidencia(tipoincidencia);

            //System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + departamento.conexion);

            return Json(new { listaTipoIncidencia });
        }

        [HttpPost]
        public JsonResult cargarEdificios(EdificioBean edificio)
        {
            //System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + departamento.Nombre);

            List<EdificioBean> listaEdificio = edificioFacade.Listaredificio(edificio);

            //System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + departamento.conexion);

            return Json(new { listaEdificio });
        }

        [HttpPost]
        public JsonResult cargarMantenibles(MantenibleBean mantenible)
        {
            //System.Diagnostics.Debug.WriteLine("--------------------------------------________HDP> " + departamento.Nombre);

            List<MantenibleBean> listaMantenible = mantenibleFacade.ListarMantenibleEdificio(mantenible);

            //System.Diagnostics.Debug.WriteLine("--------------------------------------_________MIERDA> " + departamento.conexion);

            return Json(new { listaMantenible });
        }

    }
}
